package com.chidt.zpro.dao.impl;

import cn.hutool.db.Db;
import cn.hutool.db.Entity;
import com.chidt.zpro.dao.UserDao;
import com.chidt.zpro.entity.User;
import java.sql.SQLException;
import java.util.List;

public class UserDaoImpl implements UserDao {
    @Override
    public void saveUser(User user) throws SQLException {
        Db.use().insert(
                Entity.create("user")
                        .set("username", user.getUsername())
                        .set("email", user.getEmail())
                        .set("password", user.getPassword())
        );
        System.out.println("保存成功，user:" + user);
    }

    /**
     * 1. Hutool DB 的行为：Db.use().query() 方法在无查询结果时会返回空列表(size=0)，而不是 `null`。这是Hutool DB工具包的明确设计。
     * 2. 你的判断问题：
     * if(user != null) 这个条件几乎永远为 true（除非Db.use().query()内部抛出异常中断执行），因为：
     * 查不到数据 → 返回空List ([])
     * 查到数据 → 返回含元素的List
     */
    @Override
    public User getUserByUsernameAndPassword(String username, String password) {
        try {
            List<User> user = Db.use().query("select * from user where (username = ? or email = ?) and password = ?",
                    User.class, username,username, password);
            if (!user.isEmpty()) {
                return user.get(0);
            } else {

            }
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
        return null;
    }



}
